package April;

/**
 * @author:gao
 * @date:2020/7/4
 * @time:13:53
 * @version:0.0.1
 * @description:none
 */

//912. 排序数组
//public class SortArray {
//
//    public static void main(String[] args) {
//        int[] a={0,1,2,2,324,234,1};
//        Solution solution = new Solution();
//        //solution.sortArray(a);
//    }
//}

//class Solution {
//    public int[] sortArray(int[] nums) {
//        int len = nums.length;
//        if(len==0) return nums;
//        sortArrayByIndex(nums,0,nums.length);
//        return nums;
//    }

    /**
     * 根据下标快速排血数组
     * @param nums 要排序的数组，非空
     * @param start 开始下标（包括）
     * @param end 结束下表（不包括）
     * @return
     */
//    public void sortArrayByIndex(int[] nums,int start,int end) {
//        int mid = partition(nums,start,end);
//        //下面两个都要加if判断，否则递归就不会停止
//        if(start<mid) sortArrayByIndex(nums,start,mid);
//        if(mid+1<end) sortArrayByIndex(nums,mid+1,end);
//    }

    /**
     * 将数组使用第一个元素进行划分
     * @param nums 要排序的数组
     * @param start 开始下标（包括）
     * @param end 结束下表（不包括）
     * @return 枢轴量的位置
     */
//    public int partition(int[] nums,int start,int end){
//        int p = nums[start];
//        end--;
//        while (start<end){
//            while (start<end&&nums[end]>=p) end--;
//            nums[start]=nums[end];
//            //start++;
//            while(start<end&&nums[start]<p) start++;
//            nums[end]=nums[start];
//            //end--;
//        }
//        nums[start]=p;
//        return start;
//    }
//}